package com.wy.component.wxUtils;


/**
 * @author zhusw
 * @description TODO(通讯录成员管理类)
 * 2016年2月26日 下午10:44:35
 */
public class MPerson {
	//创建成员地址
	public static String CREATE_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/create?access_token=ACCESS_TOKEN";
	//邀请成员关注地址
	public static String INVITE_URL = "https://qyapi.weixin.qq.com/cgi-bin/invite/send?access_token=ACCESS_TOKEN";
	//更新成员地址
	public static String UPDATA_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token=ACCESS_TOKEN";
	//删滁成员地址
	public static String DELETE_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/delete?access_token=ACCESS_TOKEN&userid=ID";
	//获取成员地址
	public static String GET_PERSON_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&userid=ID";
	//获取部门成员地址
	public static String GET_GROUP_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN&department_id=ID&fetch_child=0&status=0";
	
	/**
	 * 创建成员
	 * @param userid 员工UserID。对应管理端的帐号，企业内必须唯一。长度为1~64个字符
	 * @param name 成员名称。长度为1~64个字符
	 * @param department 成员所属部门id列表 格式： "department": [x, y]
	 * @param position 职位信息
	 * @param mobile 手机号码。企业内必须唯一，mobile/weixinid/email三者不能同时为空
	 * @param gender 性别。gender=0表示男，=1表示女。默认gender=0
	 * @param tel 办公电话。长度为0~64个字符
	 * @param email 邮箱。长度为0~64个字符。企业内必须唯一
	 * @param weixinid 微信号。企业内必须唯一
	 * */
	public static String create(String  userid,String name ,String department,String position ,String mobile ,String gender,String tel ,String email,String weixinid){
		String postJson = "{\"userid\":\""+userid+"\",\"name\":\""+name+"\",\"department\":"+department+",\"position\":\""+position+"\",\"mobile\":\""+mobile+"\",\"gender\":\""+gender+"\",\"tel\":\""+tel+"\",\"email\":\""+email+"\",\"weixinid\":\""+weixinid+"\"}";
		return String.format(postJson,userid,name,department,position,mobile,gender,tel,email,weixinid);
	}
	
	/**
	 * Function Name               apiagent                                   
	 * @param userid
	 * @param email 
	 * @return          		             
	 * @description 邀请关注
	 * Modify History:              Date             Programmer       Notes
	 *                            ---------        ---------------  ---------
	 *                      2016-4-19 下午3:27:09           张旭星                     Initial
	 **********************************************************************
	 */
	public static String invite(String  userid, String email){
		String postJson = "{\"userid\":\""+userid+"\",\"email\":\""+email+"\"}";
		return String.format(postJson,userid);
	}
	
	/**
	 * 更新成员
	 * @param userid 员工UserID。对应管理端的帐号，企业内必须唯一。长度为1~64个字符
	 * @param name 成员名称。长度为1~64个字符
	 * @param department 成员所属部门id列表 格式： "department": [x]
	 * @param position 职位信息
	 * @param mobile 手机号码。企业内必须唯一，mobile/weixinid/email三者不能同时为空
	 * @param gender 性别。gender=0表示男，=1表示女。默认gender=0
	 * @param tel 办公电话。长度为0~64个字符
	 * @param email 邮箱。长度为0~64个字符。企业内必须唯一
	 * @param weixinid 微信号。企业内必须唯一
	 * @param enable 启用/禁用成员。1表示启用成员，0表示禁用成员
	 * */
	public static String update(String  userid,String name ,String department,String position ,String mobile ,String gender,String tel ,String email,String weixinid,String enable){
		String postJson = "{\"userid\":\""+userid+"\",\"name\":\""+name+"\",\"department\":"+department+",\"position\":\""+position+"\",\"mobile\":\""+mobile+"\",\"gender\":\""+gender+"\",\"tel\":\""+tel+"\",\"email\":\""+email+"\",\"weixinid\":\""+weixinid+"\",\"enable\":\""+enable+"\"}";
		return String.format(postJson,userid,name,department,position,mobile,gender,tel,email,weixinid,enable);
	}
	
	/**
	 * 删除成员
	 * @param userid 员工UserID。对应管理端的帐号
	 * */
	public static String delete(String userid){
		String delete_url = DELETE_URL.replace("ID", userid);
		return delete_url;
	}
	/**
	 * 获取成员
	 * @param userid 员工UserID。对应管理端的帐号
	 * */
	public static String gPerson(String userid){
		String getperson_url = GET_PERSON_URL.replace("ID", userid);
		return getperson_url;
	}
	/**
	 * 获取部门成员
	 * @param department_id 获取的部门id
	 * @param fetch_child 1/0：是否递归获取子部门下面的成员 （可选）
	 * @param status 0获取全部员工，1获取已关注成员列表，2获取禁用成员列表，4获取未关注成员列表。status可叠加 （可选）
	 * */
	public static String gGroup(String department_id){
		String getgroup_url = GET_GROUP_URL.replace("ID", department_id);
		return getgroup_url;
	}
	//示例
	public static void main(String[] args) {
		/**
		 * 创建成员示例
		 * */
		// 调取凭证
//		String access_token = WeixinUtil.getAccessToken(new ParamesAPI().getCorpId(), new ParamesAPI().getSecret()).getToken();
		String access_token = "WCjDAEOfHxCp4mOwOjOI4nTaj3_wn_LJINkiRhtJY2pE3I8QjaDRd4wmaPWeUIGn";
		
		String userId = "wangpl";
		String email = "861292431@qq.com";
		////创建成员
		String postJson = create(userId, "王平丽","[1]","java", "", "0", "", email, "");
		int result = WeixinUtil.PostMessage(access_token, "POST", CREATE_URL, postJson);
		//邀请关注
		postJson = invite(userId,email);
		result = WeixinUtil.PostMessage(access_token, "POST", INVITE_URL, postJson);
		
//		String postJson = update("10021", "张晓光2","[1]","Java", "15201769533", "0", "0731-8012389", "sunhui1@qq.com", "hui701291","0");//根据userid更新
//		int result = WeixinUtil.PostMessage(access_token, "POST", UPDATA_URL, postJson);//更新成员
		
//		int result = WeixinUtil.PostMessage(access_token, "POST", DELETE_URL, delete("10021"));//删除成员
		
//		int result = WeixinUtil.PostMessage(access_token, "POST", GET_PERSON_URL, gPerson("10020"));//根据成员ID获取成员信息
		
//		int result = WeixinUtil.PostMessage(access_token, "POST", GET_GROUP_URL, gGroup("1"));//根据部门ID获取成员信息
		
		// 打印结果
		if(0==result){
			System.out.println("操作成功");
		}
		else {
			System.out.println("操作失败");
		}

	}

}
